unit ulab4_4;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls, Grids;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Edit1: TEdit;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Memo1: TMemo;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

const
   n_max = 20;

var
  Form1: TForm1;
  n:integer;

implementation

{ TForm1 }
{Обробник кнопки Введення}
procedure TForm1.Button1Click(Sender: TObject);
begin
     if edit1.Text=''then ShowMessage('Введіть n')
      else
         begin
           n:=strtoint(Edit1.Text);
           if (n<0)or(n>n_max)then ShowMessage('Недопустиме n')
           else
              begin
                StringGrid1.RowCount:=n;
                StringGrid1.ColCount:=n;
                StringGrid2.RowCount:=n;
                StringGrid2.ColCount:=n;
              end;
         end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Close;
end;

{Обробник кнопки Обчислення}
procedure TForm1.Button3Click(Sender: TObject);
Type    Tmas=array[0..n_max] of integer;
Var	a: array[0..n_max] of Tmas;
        b:Tmas;
	i, j, k, l, r: integer;
begin
{Введення початкових даних}
	for i:=0 to n-1 do
	   for j:=0 to n-1 do
	      a[i,j]:=StrToInt(StringGrid1.Cells[j,i]);
{Пошук координат максимального елемента матриці }
	k:=0;  l:=0;
	for i:=0 to n-1 do
	   for j:=0 to n-1 do
	      if a[i,j]>a[k,l] then
                 begin k:=i; l:=j;end;
{Перестановка місцями 0-го і k-го рядків матриці}
	  b:=a[0]; a[0]:=a[k]; a[k]:=b;
{Перестановка місцями 0-го і l-го стовпців матриці}
        for i:=0 to n-1 do
	   begin  r:=a[i,0]; a[i,0]:=a[i,l]; a[i,l]:=r; end;
{Виведення перетвореної матриці }
  	for i:=0 to n-1 do
	   for j:=0 to n-1 do
	      StringGrid2.Cells[j,i]:=IntToStr(a[i,j]);
end;

initialization
  {$I ulab4_4.lrs}

end.

